home *** CD-ROM | disk | FTP | other *** search
/ Introduction to 3D Game …ogramming with DirectX 12 / Introduction-to-3D-Game-Programming-with-DirectX-12.ISO / Code.Textures / Chapter 18 Cube Mapping / CubeMap / Shaders / Sky.hlsl < prev   
Text File  |  2016-03-02  |  986b  |  45 lines

  1. //=============================================================================
  2. // Sky.fx by Frank Luna (C) 2011 All Rights Reserved.
  3. //=============================================================================
  4.  
  5. // Include common HLSL code.
  6. #include "Common.hlsl"
  7.  
  8. struct VertexIn
  9. {
  10.     float3 PosL    : POSITION;
  11.     float3 NormalL : NORMAL;
  12.     float2 TexC    : TEXCOORD;
  13. };
  14.  
  15. struct VertexOut
  16. {
  17.     float4 PosH : SV_POSITION;
  18.     float3 PosL : POSITION;
  19. };
  20.  
  21. VertexOut VS(VertexIn vin)
  22. {
  23.     VertexOut vout;
  24.  
  25.     // Use local vertex position as cubemap lookup vector.
  26.     vout.PosL = vin.PosL;
  27.     
  28.     // Transform to world space.
  29.     float4 posW = mul(float4(vin.PosL, 1.0f), gWorld);
  30.  
  31.     // Always center sky about camera.
  32.     posW.xyz += gEyePosW;
  33.  
  34.     // Set z = w so that z/w = 1 (i.e., skydome always on far plane).
  35.     vout.PosH = mul(posW, gViewProj).xyww;
  36.     
  37.     return vout;
  38. }
  39.  
  40. float4 PS(VertexOut pin) : SV_Target
  41. {
  42.     return gCubeMap.Sample(gsamLinearWrap, pin.PosL);
  43. }
  44.  
  45.